<?php

namespace Ignus\View;

interface ExtensionInterface
{
    public function initRuntime(Environment $environment);

    /**
     * @abstract
     * @return array
     */
    public function getTokenParsers();

    /**
     * @abstract
     * @return array
     */
    public function getNodeVisitors();

    /**
     * @abstract
     * @return array
     */
    public function getFilters();

    /**
     * @abstract
     * @return array
     */
    public function getTests();

    /**
     * @abstract
     * @return array
     */
    public function getFunctions();

    /**
     * @abstract
     * @return array
     */
    public function getOperators();

    /**
     * @abstract
     * @return array
     */
    public function getGlobals();

    /**
     * @abstract
     * @return string
     */
    public function getName();
}
